/*
 * Lagrangian.h
 *
 *  Created on: 28/apr/2013
 *      Authors: Ialenti Andrea, Marangon Fabio
 */

#ifndef LAGRANGIAN_H_
#define LAGRANGIAN_H_

#include "StatusCodes.h"
#include "Types.h"

//	Compute the Lagrangian relaxation to find the lagrangian coefficients u.
Status computeLagrRlx(const Config *cfg, Graph *g, funcLu *f, bool verbose);

//	This function is used to apply the lagrangian coefficients to the graph edges cost.
Status applyLagrCoeffs(const Config *cfg, Graph *g, double *u);

//	This function is used to remove some original graph edges to reduce the problem size.
Status rmGraphEdges(const Config *cfg, Graph *g, double LB, double UB);

#endif /* LAGRANGIAN_H_ */
